#define _CRT_SECURE_NO_WARNINGS 1
//#include <iostream>
//#include <cstdio>
//
//using namespace std;
//const int N = 50010;
//int animal[N];
//int find(int a)
//{
//    if (a != animal[a]) animal[a] = find(animal[a]);
//    return animal[a];
//}
//int main()
//{
//    int n, k;
//    int kind = 0;
//    int num = 0;
//    scanf("%d%d", &n, &k);
//    for (int i = 1; i <= n; i++)
//        animal[i] = i;
//    while (k--)
//    {
//        char op[2];
//        int x, y;
//        scanf("%s", op);
//        if (*op == '1')
//        {
//            scanf("%d%d", &x, &y);
//            if (find(x) > 0 && find(y) > 0)
//                animal[x] = find(y);
//            else if (find(x) > 0 && find(y) < 0)
//                animal[x] = find(y);
//            else if (find(x) < 0 && find(y) > 0)
//                animal[y] = find(x);
//            else if (find(x) != find(y))
//                num++;
//        }
//        else
//        {
//            scanf("%d%d", &x, &y);
//            if (find(x) > 0 && find(y) > 0)
//            {
//                animal[x] = (--kind) % 3;
//                animal[y] = (--kind) % 3;
//            }
//            else if (find(x) > 0 && find(y) < 0)
//            {
//                if (find(x) == -1)
//                    animal[find(x)] = -3;
//                else
//                    animal[find(x)] = (find(y) + 1) % 3;
//            }
//            else if (find(x) < 0 && find(y) > 0)
//            {
//                animal[find(y)] = (animal[find(x)] - 1) % 3;
//            }
//            else
//            {
//                if (animal[find(x)] < animal[find(y)] || (animal[find(x)] == -1 && animal[find(y)] == -3))
//                    num++;
//            }
//        }
//        printf("%d", num);
//    }
//    return 0;
//}
//#include <iostream>
//#include <unordered_set>
//
//using namespace std;
//
//int main()
//{
//    unordered_set<string> s;
//    string n;
//    int k;
//    cin >> k;
//    cin >> n;
//    while (k--)
//    {
//        s.insert(n);
//        if (s.find(n) != s.end())
//            s.erase(n);
//        if (k > 1)
//            cin >> n;
//        s.
//    }
//    for (auto p = s.cbegin(); p != s.cend(); p++)
//        cout << *p << endl;
//    return 0;
//}
#include <iostream>
#include <cstdio>
using namespace std;

const int N = 1e5 + 10;
int q[N];
int main()
{
    int n;
    scanf("%d", &n);
    int size = 0;
    int ma = 0, mi = n;
    for (int i = 0; i < n; i++)
        scanf("%d", &q[i]);
    for (int i = 0; i < n; i++)
    {
        int j;
        for (j = i; j < n; j++)
        {
            ma = max(ma, q[j]);
            mi = min(mi, q[j]);
            if (ma - mi > 1)
                break;
        }
        size = max(size, j - i);
        if (j == n)
            break;
        ma = 0; mi = n;
    }
    printf("%d", size);
    return 0;
}